Jak działa Open Mercato

Open Mercato działa jako aplikacja Next.js. Moduły biznesowe korzystają ze wspólnych usług do kontroli dostępu, zapisu danych i pracy w tle. Poniższy schemat pokazuje, jak łączą się te elementy.

Na tej stronie

Co działa w jednej aplikacji?

Aplikacja włącza wybrane moduły biznesowe. Generowane rejestry łączą ich strony, trasy API i usługi z aplikacją. Moduł porządkuje kod; nie oznacza osobnej usługi wdrażanej na własnym serwerze.

Architektura w praktyceJedna aplikacja, moduły w środku, usługi obok
Przeglądarka / klient APIHTTPS
żądanie

Twoja aplikacja Next.js

CRM
Sprzedaż
Twój moduł

Wspólne: uprawnienia · komendy · odczyt danych · zdarzenia

odczyt / zapiszlecenie zadania
PostgreSQLDane biznesowe
Kolejka + workerDla skonfigurowanych zadań w tle
Kod i dokumentacja

generators/module-registry.ts

Od działania użytkownika do wyniku

Wybierz sytuację, a potem dowolny krok. Zobaczysz, kto wykonuje pracę, jakie dane otrzymuje i co przekazuje dalej.

Otwierasz kartę klienta

Prześledź odczyt przez API modułu. Wybrana organizacja określa, do których rekordów żądanie może mieć dostęp.

Otwarcie karty

Strona prosi o dane konkretnego klienta. Razem z żądaniem przesyła sesję zalogowanego użytkownika.

Otrzymuje
customerId: "42"
Przekazuje dalej
Żądanie do API modułu

WynikPrzeglądarka wyświetla dane klienta zwrócone przez API.

Co może pójść nie tak?Nieznany lub niedostępny klient nie może ujawnić danych innej organizacji. Odpowiadają za to kontrola w trasie i zakres zapytania.

Poznaj ten mechanizm dokładniej

Gdzie szukać przyczyny błędu

ObjawOd czego zacząć
Własna strona się nie pojawiaRejestracja modułu, wygenerowane trasy, a potem uprawnienie wymagane przez stronę.
Formularz wysyła dane, ale zapis jest odrzucanyOdpowiedź API, schemat danych i zakres dostępu; następnie komenda i jej reguły zapisu.
Zapis działa, ale drugi system nie ma nowych danychEmisja zdarzenia, rejestracja jego obsługi, zadanie w kolejce i błędy workera.
Kod i dokumentacja

generators/module-registry.ts · crud/factory.ts · src/factory.ts

Przykład: zapis klienta

Formularz klienta wysyła żądanie do API. Trasa zbudowana przez makeCrudRoute może sprawdzić dane i uprawnienia, a następnie wywołać zarejestrowaną komendę. Komenda wykonuje zmianę. DataEngine może połączyć zapis ze zdarzeniami i aktualizacją indeksu.

Bezpośredni zapis przez ORM może ominąć historię operacji, reguły zapisu lub zdarzenia używane przez zwykłą trasę. Jeśli import zmienia bazę, a ekran lub wyszukiwarka nadal pokazuje stare dane, porównaj kod importu ze ścieżką używaną przez formularz.

Kod i dokumentacja

crud/factory.ts · commands/command-bus.ts · data/engine.ts

Co trzeba uruchomić?

Zaplanuj aplikację i bazę danych. Workery, pamięć podręczną, wyszukiwarkę i magazyn plików dobierz do włączonych funkcji oraz wybranych konfiguracji. Ustal, gdzie są przechowywane dane i jak odtworzysz je po awarii.

Kod i dokumentacja

src/service.ts · src/service.ts · src/factory.ts

Źródła

Kod Open Mercato użyty w opisach